#ifndef VIDEOIMAGE_H
#define VIDEOIMAGE_H
/*
 * 该文件主要用于保存视频以及截屏等操作
 */

#include <QObject>
#include <QProcess>
#include <QDesktopServices>
#include <QUrl>
#include <QMessageBox>
#include <QFileInfo>
#include <QCoreApplication>
#include <QFileDialog>

#include "ui/DoubleSlider/DoubleSlider.h"
#include "ui/optionWidget/optionsItem/optionItemMiddleWidget/MiddleWidgetVirtual.h"
#include "XML/XmlFunc.h"

class VideoImage : public MiddleWidgetVirtual
{
    Q_OBJECT
public:
    VideoImage();
    int RFixedHeight() override;
    int fixedWidth(ParameterKind kind = ParameterKind::Get, int widget = 0) override;
    bool setPaletteBF(const QPalette& palette) override;
    void LanguageInit() override;
private:
    QPushButton* m_VideoBtn;         // 录制视频按钮
    QPushButton* m_ImageBtn;         // 拍摄照片按钮
    QLineEdit*   m_VideoImagePath;   // 录制好的视频以及照片存储地址
    QLabel*      m_path;             // 显示路径label
    QPushButton* m_ChooseFilePath;   // 选择待保存文件路径
    QPushButton* m_OpenFilePath;     // 打开对应文件路径
    QHBoxLayout* m_OneBtnLayout;     // 第一行录制、拍照相关按钮
    QHBoxLayout* m_TwoFileLayout;    // 第二行文件相关控件
    QVBoxLayout* m_VideoImageLayout; // 当前抽屉的整体垂直布局
    int          m_FixedHeight=100;  // 当前抽屉的高度
    QString      m_Path;             // 当前录制视频、图片保存位置
    bool         m_isRecord = false; // 表示当前是否处于录制状态
signals:
    void senderValue(signalKind, int);
private slots:
    /**
     @interpret 处理用户点击打开文件路径按钮
     @param     无
     @return    无
     */
    void clickedOpenFileBtn();

    /**
     @interpret 处理用户点击选择文件按钮
     @param     无
     @return    无
     */
    void clickedChooseFileBtn();

    /**
     @interpret 处理用户点击录制视频按钮
     @param     无
     @return    无
     */
    void clickedVideoBtn();

    /**
     @interpret 处理用户点击照片按钮
     @param     无
     @return    无
     */
    void clickedImageBrn();
};

#endif // VIDEOIMAGE_H
